<?php

class indexController extends Zend_Controller_Action {

    public function init() {
        /* Initialize action controller here */
    }

    public function indexAction() {
        return $this->_helper->redirector('login');
    }

    public function loginAction() {
        
         $this->_helper->layout->disableLayout();
        // PARA REMOVER LAYOUT
        
        $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
        $this->view->messages = $this->_flashMessenger->getMessages();
        $form = new Application_Form_user();
        $this->view->form = $form;
//Verifica se existem dados de POST 
        if ($this->getRequest()->isPost()) {
            $data = $this->getRequest()->getPost();
//Formulário corretamente preenchido? 
            if ($form->isValid($data)) {
                $cpf = $form->getValue('cpf');
                $chave = $form->getValue('chave_acesso');
                $dbAdapter = Zend_Db_Table::getDefaultAdapter();
//Inicia o adaptador Zend_Auth para banco de dados 
                $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
                $authAdapter->setTableName('inscricao')
                        ->setIdentityColumn('candidato_cpf')
                        ->setCredentialColumn('chave_acesso');
                        
//Define os dados para processar o login 
                $authAdapter->setIdentity($cpf)
                        ->setCredential($chave);
//Efetua o login 
                $auth = Zend_Auth::getInstance();
                $result = $auth->authenticate($authAdapter);
//Verifica se o login foi efetuado com sucesso 
                if ($result->isValid()) {
//Armazena os dados do usuário em sessão, apenas desconsiderando 
//a senha do usuário
                    $info = $authAdapter->getResultRowObject(null, 'chave_acesso', 'condicao','candidato_cpf','rg');
                    $storage = $auth->getStorage();
                    $storage->write($info);
                    $ativa = $info->condicao;
                    $inscricao = $info->candidato_cpf;

                    if ($ativa == 'true' ) {
//Redireciona para o Controller protegido 
                        return $this->_helper->redirector->goToRoute(array('controller' => 'usuario', 'module' => 'default'), null, true);
                    } else {
                        return $this->_helper->redirector->goToRoute(array('controller' => 'candidato','action' => 'candidato','module' => 'default','candidato_cpf' => $inscricao), null, true);
                        //$this->url(array('controller' => 'candidato','action' => 'candidato', 'candidato_cpf' => $inscricao->candidato_cpf));
                        
                    }
//Redireciona para o Controller protegido 
                       
                    
                } else {
//Dados inválidos 
                    $this->_helper->FlashMessenger('Usuário ou senha inválidos!');
                    $this->_redirect('/index/login');
                }
            } else {
//Formulário preenchido de forma incorreta 
                $form->populate($data);
            }
        }
    }

    public function logoutAction() {
        $auth = Zend_Auth::getInstance();
        $auth->clearIdentity();
        return $this->_helper->redirector('index');
    }

}

